<?php
/** 
 * 当目标是一个抽象类或者具体类时，可以使用对象适配器
 * 在对象适配器中，它通过继承Target并关联一个Adaptee对象使二者产生联系
 */
class TargetClass implements TargetInterface
{
    public function greet()
    {
        echo "hello world\r\n";
    }
}

class ObjectAdapter extends TargetClass
{
    /** @var Adaptee $adaptee */
    protected $adaptee=null;
    public function __construct()
    {
        $this->adaptee=new Adaptee;
    }
    public function greet()
    {
        return $this->adaptee->say("hello");
    }
}
